package com.patterns.singleton;

/**
 * 静态内部类单例模式
 * 延迟加载
 * 外部类没有static，SingletonClassInstance不会在加载SingletonDemo4类时初始化
 * 加载类时是线程安全的，final类型保证instance只有一个实例存在，并且只能被赋值一次
 * 兼备并发高效调用和延迟加载的优势
 * @author huangke
 *
 */
public class SingletonDemo4 {
	private SingletonDemo4(){
		
	}
	
	private static class SingletonClassInstance{
		private static final SingletonDemo4 instance = new SingletonDemo4();
	}
	
	public static SingletonDemo4 getInstance(){
		return SingletonClassInstance.instance;
	}
}
